今天的會議在討論一個問題,我覺得很有意思,需求是 App 連接外部裝置後,會依照偵測到的數據來發出警報,有意思的地方是 RD 是根據先前 PM 提供的規格進行開發,但是臨床人員發現他們沒有辦法測試到不正常的情況,也就是發出警報的情況,所以大家在討論該怎麼樣去測試這個問題。
另一方面,我們也在討論這個數值的區間定義是否正確。查了一下,這個數據區間是來自很久以前 PM 所提供的規格,具體來源可能也不可考了。但因為時空背景不同,我們現在的應用多了其他需求,所以這個數值區間可能已經不完全適用。
在這樣的前提之下,我們應該怎麼樣去進行後續的開發呢?
好,來到第一個問題:我們該在什麼時候、什麼階段去測試這個警報呢?也就是說,當我們將軟體交付給臨床人員測試時,他們是否應該驗證到所有的測試情境?
我的認知是不一定。因為很多時候,其實可以先透過端對端測試(End-to-End Test)來驗證。當我們的測試滿足了條件,測試結果與報告,可以支持受測版本在指定條件下依規格觸發警報。便可以說明這個警報在這樣的數據下是可以正常動作的。
臨床人員測試的目的,不一定需要重做所有工程測試,但使用評量還要確認警報是否被注意、理解,以及相關操作是否能安全完成。
好,第二個問題則是:這個數據的區間是不是正確的?
以前我們在開發時,工程師通常拿到規格書就開始實作,這在一般的軟體開發可能都是如此。不過醫療軟體是一門精密的學問,如果我們在這樣的情境下任意設置數值區間,可能會與臨床現況不符。
實際上我們應該怎麼進行呢?我覺得我們應該要與臨床人員確認需求。當需求確認之後,除了確認整體需求,還要確認裡面的關鍵數值是否正確、區間是否定義清楚。
工程師不一定具有醫療背景,所以這時候需要由臨床人員提供相關的專業知識。在這樣的情境下讓數據經過充分討論,並把它寫在我們的規格書內。
當我們確認了數值區間的依據,也能透過測試檢查警報是否按照規格觸發,接下來還有第三個問題:警報發出之後,使用者知道它在提醒什麼,以及下一步要做什麼嗎?
在介面還能調整的階段,我們可以用模擬資料重現警報情境,請臨床人員操作,觀察他們有沒有注意到警報、如何理解提示,以及在哪裡猶豫或做出非預期操作。必要時再追問原因,把發現帶回介面設計,修改後重新評量。這就是形成性評量(Formative Evaluation)的用途。
等介面與操作方式定下來後,再讓代表性的預期使用者,在接近實際使用的環境與訓練條件下,完成風險分析所識別的關鍵任務。主持人不在操作途中教答案,操作後再透過訪談釐清困難與錯誤原因。這就接到總結性評量(Summative Evaluation)與 FDA 人因確效測試所關注的問題。
形成性評量(Formative Evaluation)在設計與開發過程中進行,可用概念、原型或可操作版本,配合多輪觀察來改善介面。我們可以發現在軟體開發當中,軟體不可能一次到位,所以開發與設計之間會來回討論。
在醫療軟體也是一樣,我們會將軟體交由臨床人員測試,他們會給予臨床端的回饋。RD 在收到回饋之後,反覆地雕琢,就可以將其改成更符合臨床人員使用的版本。
而我注意到一點,或許是因為臨床人員與工程師的工作經驗、關注重點不同,純粹會以臨床人員的角度來思考。這反而對軟體的改進有很大的幫助,因為有時候我們容易被自己的知識所限制住,沒辦法找出新的方式來改進。透過不同角色的角度來分析、確認是否還有可以修改的地方,是非常重要的。
經過形成性評量反覆修改後,當警報的數值區間、操作流程與介面設計已經確認,接下來就要進行總結性評量。我們要確認的是:預期使用者在接近實際使用的條件下,能不能理解警報,並完成相關的安全操作。
以前面的警報功能為例,可以在模擬使用環境中重現警報情境,請能代表預期使用者的臨床人員操作。觀察他們是否注意到警報、是否理解訊息,以及能否完成事先定義的操作。測試情境要涵蓋風險分析所識別的所有關鍵任務,而不只是平常最容易遇到的正常流程。
這個階段的訓練與可取得的說明資訊,應該符合實際使用條件。主持人不在操作途中額外提示步驟,操作結束後再透過訪談,了解使用者當時如何理解畫面,以及為什麼猶豫或做出某個操作。
如果發現使用者漏看警報、誤解訊息或無法完成操作,就需要結合觀察與訪談分析原因,再評估風險與後續修改。若修改影響安全相關操作,也要安排相應的再次確效。
因此,形成性評量用來發現問題、改善設計;總結性評量則評估最終設計在預期使用條件下的表現。工程測試確認警報是否依規格觸發,人因評量則繼續確認使用者能否正確理解與處理它。
醫療軟體如同一般軟體開發,都需要反覆測試、迭代,逐步改善功能與使用方式。
今天介紹的形成性評量(Formative Evaluation),讓我們在設計與開發過程中,觀察使用者的操作、找出問題,再把結果帶回設計。透過反覆評量與修改,改善操作流程與 UI/UX,降低使用錯誤。
另一方面,總結性評量(Summative Evaluation)是在設計定下來後,讓代表性的預期使用者,在接近實際使用的條件下操作,確認他們能否理解警報並完成安全相關任務。如果出現使用錯誤或操作困難,就需要記錄、分析原因並評估風險,再決定是否修改設計,以及需要哪些再次評量。